package com.zerocarbon.framework.core.model;

import lombok.*;

import java.io.Serializable;
import java.util.List;

/**
 * APP实体
 * @author wyf  2020年6月11日
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@ToString(callSuper = true)
@Builder
public class AppInfo implements Serializable {
	
	private static final long serialVersionUID = -4658478992492405188L;
    
	/**
	 * 应用Key
	 */
    private String appKey;
	
    /**
     * 应用名称
     */
    private String appName;
    
    /**
     * 应用秘钥
     */
    private String appSecret;
    
    /**
     * 应用类型 1：app 2：小程序
     */
    private String appType;
    
    /**
     * 三方应用配置
     */
    private List<ExtApp> extAppList;
    
    /**
     * 租户ID
     */
    private Long tenantId;
    
    public static final String WX_APP_TYPE = "WX";				//微信小程序
    public static final String ALIPAY_APP_TYPE = "ALIPAY";		//支付宝小程序
    
    @Data
    public static class ExtApp implements Serializable {
    	
		private static final long serialVersionUID = -7413695174013897084L;

		/**
         * 三方应用类型 WX：微信 ALIPAY：支付
         */
        private String extAppType;
        
        /**
         * 三方应用Id
         */
        private String extAppId;
        
        /**
         * 三方应用秘钥
         */
        private String extAppSecret;
        
        /**
         * 三方应用公钥
         */
        private String extPublicSecret;
    }
    
    /**
     * 获取三方平台配置信息
     * @param extAppType
     * @return
     */
    public ExtApp getExtAppByType(String extAppType) {
    	if(extAppList!=null)
    		return extAppList.stream().filter((t)->extAppType.equals(t.getExtAppType())).findAny().orElse(null);
    	return null;
    }
}
